Impression tagging system for locations

ABSTRACT

A server system comprising a processor configured to manage an extensible taxonomy of impression tags for categorizing the plurality of locations, monitor content sources for visitor impressions of the plurality of locations and extract a plurality of impression tag inputs from the visitor impressions, each impression tag input including an identified impression tag, a visited location of the plurality of locations, and visited location context data including a visited time interval of the plurality of time intervals, for each impression tag input, aggregate that impression tag input into aggregated impression tag input data in a location profile of the plurality of location profiles that is associated with the visited location of that impression tag input, and for each location profile, select one or more categorizing impression tags from the extensible taxonomy of impression tags based on at least the aggregated impression tag input data of that location profile.

BACKGROUND

In Internet based map services, locations may be tagged by users, usingtags sometimes referred to as “placemarkers.” After creating a tag at agiven location, a user may enter a name for the tagged location, andcategorize the location by location type, such as park or restaurant,for example. Some location tagging services also enable a user to tagthe location with feedback, for example by selecting a “like” or “heart”feedback option. However, these feedback options are constrained to afew predefined types of feedback tags. By constraining users to onlyselect between a few different predefined feedback tag options, theseservices limit the ability of users to express a full range of humanreactions.

SUMMARY

To address the above issue, a server system is provided, which mayinclude a processor configured to store a plurality of location profilesrespectively associated with a plurality of locations, each locationprofile having calendar data including a plurality of time intervals,manage an extensible taxonomy of impression tags for categorizing theplurality of locations, monitor content sources for visitor impressionsof the plurality of locations and extract a plurality of impression taginputs from the visitor impressions, each impression tag input includingan identified impression tag, a visited location of the plurality oflocations, and visited location context data including a visited timeinterval of the plurality of time intervals, based on at least adetermination that one of the identified impression tags of theplurality of extracted impression tag inputs is not included in theextensible taxonomy of impression tags, extend the extensible taxonomyof impression tags with the one of the identified impression tags as acrowd-sourced impression tag, for each impression tag input, aggregatethat impression tag input into aggregated impression tag input data in alocation profile of the plurality of location profiles that isassociated with the visited location of that impression tag input, andfor each location profile, select one or more categorizing impressiontags from the extensible taxonomy of impression tags for each of theplurality of time intervals based on at least the aggregated impressiontag input data of that location profile.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a schematic representation of a server system according toone embodiment of the present disclosure.

FIG. 2 shows an example graphical user interface for a clientapplication in communication with the server system of FIG. 1.

FIG. 3 shows example content sources monitored by the server system ofclaim 1.

FIG. 4 shows a visual representation of aggregate scores of impressiontags aggregated by the server system of FIG. 1.

FIG. 5 shows another visual representation of aggregate scores ofimpression tags aggregated by the server system of FIG. 1.

FIG. 6 shows an example graphical user interface for a clientapplication in communication with the server system of FIG. 1.

FIG. 7 shows an example method for impression tagging of locations.

FIG. 8 shows an example computing system according to an embodiment ofthe present disclosure.

DETAILED DESCRIPTION

As discussed in detail below, the inventors have recognized thatunstructured freeform tagging may have ambiguous and complexinterpretations. On the other hand, constrained forms of tagging thatlimit users to only selecting from among a small set of predefined tagsmay be too limiting to express the full range of human emotions and thefull spectrum of human reactions. The systems and methods describedherein have been devised to address this challenge.

FIG. 1 illustrates a schematic representation of a server system 10providing an impression tagging service for users of client computingdevices 12. The client computing devices 12 may take the form of mobilecomputing devices, desktop computing devices, laptop computing devices,wrist-mounted computing devices, and other forms of computing devicesthat may be used to communicate with the server system 10 over anetwork.

As illustrated, the server system 10 includes a processor 14, volatilestorage 16, and non-volatile storage 18. In one example, the serversystem 10 includes a plurality of server devices, each server deviceincluding a processor 14, volatile storage 16, non-volatile storage 18.The plurality of server devices may be configured to enact the methodsdescribed herein in concert. However, it will be appreciated that anysuitable server system architecture may be used to enact the systems andmethods described herein.

In one example, processor 14 of the server system 10 is configured toexecute instructions stored on the non-volatile storage 18 for animpression tagging engine 20. As illustrated, the impression taggingengine 20 is configured to store a plurality of location profiles 22respectively associated with a plurality of locations. Each locationprofile 22 includes an associated location 24 of the plurality oflocations. Each of the plurality of locations are physical places thatare known to the impression tagging engine 20. For example, theplurality of locations may include buildings, businesses, routes,landmarks, geolocations, collections of locations, and other types ofphysical locations or methods of demarcating locations in the world.Each of the plurality of locations profiles 22 may include location datafor its associated location 24. For example, a location profile mayinclude a street address for the associated location 24. However, itwill be appreciated that other types of location data may be stored bythe plurality of locations profiles.

As illustrated in FIG. 1, each location profile of the plurality oflocations profiles 22 further includes calendar data 26 including aplurality of time intervals 28. The calendar data 26 organizes calendarinformation for the associated location 24 of that location profile. Forexample, if the associated location 24 is a store, the calendar data 26may include information for the hours that the store is open. In thisexample, the calendar data 26 for each of the plurality of locationprofiles 22 may include a plurality of time intervals 28 including day,time of day, month, year, season, and other types of time intervalssuitable for the type of location. In another example, the associatedlocation 24 may be a public location such as a public square that isopen at all hours of the day. Thus, in this example, the calendar data26 for each of the plurality of location profiles 22 includes event timeintervals of the plurality of time intervals 28 for events that occur atthe associated location 24. For example, the calendar data 26 mayinclude data regarding events that will occur at the associated location24 including how long the event will last. It will be appreciated thatthe above examples of the plurality of time intervals 28 are merelyillustrative, and other types of time intervals and combinations ofdifferent time intervals not specifically mentioned above may also beincluded in the calendar data 26 of the plurality of location profiles22.

As discussed previously, unstructured freeform tagging may generate datasets that have ambiguous and complex interpretations. To address thisissue, the impression tagging engine 20 executed by the processor 14 ofthe server system 10 is configured to manage an extensible taxonomy ofimpression tags 30 for categorizing the plurality of locations of theplurality of location profiles 22. As shown, the extensible taxonomy ofimpression tags 30 includes dictionary impression tags 32 which is a setof predetermined impression tags that initially populates the extensibletaxonomy of impression tags 30. The dictionary impression tags 32 mayinclude known descriptive words, phrases, idioms, acronyms, etc., thatare commonly used during conversation.

In one example, the extensible taxonomy of impression tags 30 may alsoinclude emoticons and user uploaded images in addition to words in thedictionary sourced impression tags 32. For emoticons, the extensibletaxonomy of impression tags 30 may include commonly used emoticons withassociated meanings. For example, the extensible taxonomy of impressiontags 30 may include a “happy face” emoticon that is associated with animpression tag for happiness in the extensible taxonomy of impressiontags 30. As another example, the extensible taxonomy of impression tags30 may include images or pictures that may evoke specific emotions orimpressions. For example, the extensible taxonomy of impression tags 30may include an image of a fireplace that may be associated with a “cozy”impression. It will be appreciated that the above examples of types ofimpression tags are merely illustrative, and other types of impressiontags not specifically mentioned above may also be included in theextensible taxonomy of impression tags 30.

As described above, the extensible taxonomy of impression tags 30 may beprepopulated with a predetermined list of dictionary sourced impressiontags 32, including words, phrases, emoticons, images, etc. theimpression tagging engine 20 may include predetermined semantics forthese prepopulated impression tags, including synonyms, antonyms, etc.Thus, the impression tagging engine 20 may be configured to recognizeand understand these impression tags in online content.

As shown, the extensible taxonomy of impression tags 30 may be furtherextended to include crowd sourced impression tags 34. The crowd sourcedimpression tags 34 may comprise impression tags that are not included inthe base dictionary sourced impression tags 32, but are sourced fromuser generated content and various content sources. The impressiontagging engine 20 may recognize that a word or phrase was used todescribe a location via established grammar rules and conventions of thelanguage. For example, the impression tagging engine 20 may recognizethat words or phrase preceded by a hashtag may likely includedescriptive content, a user impression, or a reaction for a location.Thus, even if the particular word or phrase is not currently included inthe extensible taxonomy of impression tags 30, the impression taggingengine 20 may recognize that the word or phrase was used to describe alocation and extract that word or phrase as a new impression tag to beadded to the crowd sourced impression tags 34.

The impression tagging engine 20 executed by the processor 14 of theserver system is configured to monitor content sources 36 for visitorimpressions 38 of the plurality of locations and extract a plurality ofimpression tag inputs 40 from the visitor impressions 38. For example,the content sources 36 may include online social networking services,online review services, online media services, and other types of onlinecontent sources that allow users to post content relating to locationsin the world. In another example, the client computing devices 12 may beincluded in the content sources 36. For example, the client computingdevice 12 may execute a client application 42 via client hardware 44.The client hardware 44 may include any suitable hardware components toexecute applications on the client computing devices 12, such as aprocessor, volatile storage, non-volatile storage, etc. The clientapplication 42 executed on a client computing device 12 may beconfigured to communicate with the impression tagging engine 20 executedby the server system 10.

In the illustrated example, the client application 42 includes agraphical user interface (GUI) 46 that is presented to the user via adisplay 48 of the client computing device 12. The client application 42may be configured to elicit a visitor impression 38 from the user of theclient computing device 12 and receive impression tag input 40 via theGUI 46 presented to the user. The received impression tag inputs 40 maythen be sent to the impression tagging engine 20.

The impression tagging engine 20 is configured to extract the impressiontag input 40 from the visitor impression 38 retrieved from the contentsources 36 of client computing devices 12. As shown, after extraction bythe impression tagging engine 20, each impression tag input 40 mayinclude an identified impression tag 52, a visited location 52 of theplurality of locations, and visited location context data 54 including avisited time interval 56 of the plurality of time intervals 28. In oneexample, the impression tagging engine 20 receives raw data for thevisitor impressions 38, such as a user review or a user post on a socialnetworking service. In this example, the impression tagging engine 20may be configured to identify and extract the impression tag 52 from thewritten content. The impression tagging engine 20 may determine thevisited location 52 from the written content, such as if the user wrotean address or name for the location in the visitor impression 38, ormetadata such as geolocation data that was associated with the contentof the visitor impression 38 by the content source 36.

Additionally, the impression tagging engine 20 may also determine thevisited location context data 54, including the visited time interval56, based on metadata associated with the visitor impression 38. Forexample, a timestamp for the visitor impression 38 may be used todetermine when the visited location 52 was visited. If the user visitedat 8:00 PM, then the impression tagging engine 20 may determine that theimpression tag input 40 has an evening visited time interval 56. Thevisited time interval 56 may be selected from one of the plurality oftime intervals. Thus, the visited time interval 56 may include a time ofday, a day of the month, a month, a season, a duration of an event,etc., depending upon the type of time intervals appropriate for thevisited location 52.

As shown, the visited location context data 54 of each impression taginput 40 may further include a visited location condition 58 of aplurality of location conditions. The visited location condition 58indicates a physical condition of the visited location 52 when thevisitor impression 38 was generated. In one example, the plurality oflocation conditions includes weather conditions. Thus, the visitedlocation condition data 58 may indicate whether the weather was rainy,runny, cold, hot, or any other type of weather condition, when thevisitor created the visitor impression 38. To determine the visitedlocation condition data 58, the impression tagging engine 20 may beconfigured to retrieve weather data for the area of the visited location52. For example, if the visited location 52 is a store in Portland,Oreg., the impression tagging engine 20 may retrieve weather data forPortland, Oreg. from any suitable weather database service, anddetermine what the weather condition for Portland, Oreg. was at thevisited time interval 56. In another example, the visited locationcondition 58 make indicate other conditions of the location such asnearby events that may impact the visited location.

FIG. 2 illustrates an example GUI 46 shown on a display 48 of an exampleclient computing device 12, which is a mobile computing device in thisexample. As shown, the client application 42 executed by the clientcomputing device 12 is configured to elicit a visitor impression 38 fromthe user of the client computing device 12. In the illustrated example,the client application 42 determine that the user is currently at astore COFFEE SHOP A, which is the visited location 52 in this example.The example GUI 46 includes an entry field 60 where the user may enterone or more impression tags via an input device, such as a touchcapacitive display of the mobile computing device. In this specificexample, the GUI 46 further includes a GUI element that has a countdowntimer, which may be configured to elicit the user's initial firstimpressions of gut reactions to the visited location. As shown, the userhas entered two impression tags, “cozy” and “quiet”, which are extractedas the identified impression tags 50 for the impression tag input 40.

After receiving the impression tags entered by the user, the clientapplication 42 executed by the client computing device 12 may beconfigured to send the entered impression tags to the server system 10as the visitor impression 38, which includes impression tag input 40having the entered impression tags of “cozy” and “quiet”. The clientapplication 42 may be further configured to attach metadata to thevisitor impression 38, including the current time of 3:00 PM when theuser was entering the impression tags. After receiving the visitorimpression 38 from the client application executed by the clientcomputing device 12, the impression tagging engine 20 may extract theimpression tag input 40, which includes the entered impression tags of“cozy” and “quiet”. The impression tagging engine 20 may then identifythe entered impression tags with the extensible taxonomy of impressiontags 30. The impression tagging engine 20 may also determine the visitedlocation context data 54 based on the metadata including the timestampof 3:00 PM for the visitor impression 38. Thus, in this example, theimpression tagging engine 20 may determine that the visited timeinterval 56 is in the afternoon time interval, and may determine visitedlocation condition data 58, such as the weather, by querying weatherdata for the weather condition at 3:00 PM. In this manner, theimpression tagging engine 20 may extract the impression tag input 40from the visitor impression 38 received from the client computing device12.

In one example, the GUI 46 is configured to allow the user to freelyenter their impressions into the entry field 60 without providing anysuggested impression tags. In another example, the GUI 46 may provide alist 62 of suggested impression tags to the user. In this example, theserver system 10 may be configured to send the extensible taxonomy ofimpression tags 30 to a client computing device 12. After receiving theextensible taxonomy of impression tags 30, the client application 42 maypresent a subset of the extensible taxonomy of impression tags 30 to theuser via the GUI 46. In the example illustrated in FIG. 2, the clientapplication 42 presents the user with a list 62 of common impressionsfrom the extensible taxonomy of impression tags 30. The clientapplication 42 may be configured to receive a user selection of one ormore of the impression tags in the list 62 of impression tags. After theuser has selected one or more of the impression tags, the impressiontagging engine 20 may receive an impression tag input 40 from the clientcomputing device 12 including a user selection of one of the impressiontags from the extensible taxonomy of impression tags 30 as theidentified impression tag 50. It will be appreciated that the user mayenter or select impression tags via any suitable input method. Forexample, the user may enter the impression tags via text input to anentry field 60 of the GUI 46. In another example, the user may enter theimpression tags via voice input to a microphone of the client computingdevice 12.

As discussed previously, the impression tagging engine 20 may monitor aplurality of different content sources, and is not limited to retrievingvisitor impressions 38 only from client computing devices 12. FIG. 3illustrates two examples of content sources 36 that the impressiontagging engine 20 may monitor for visitor impressions 38. In oneexample, the content sources 36 include an online social networkingservice 36A where users may generate posts. In the illustrated example,a user has created a post including an example visitor impression 38A.The impression tagging engine 20 may be configured to perform semanticanalysis on the example visitor impression 38A to determine that thevisited location 52 is the coffee shop A. Additionally, based on hashtagconventions for online social networking services, the impressiontagging engine 20 may determine that the content of “#cozy #quiet#relaxyourself” includes three impression tags of “cozy”, “quiet”, and“relaxyourself”. The impression tagging engine 20 may compare theextracted impression tags to the extensible taxonomy of impression tags30, and may identify both “cozy” and “quiet” based on the extensibletaxonomy of impression tags 30.

However, the impression tag of “relaxyourself” may be an uncommon phrasethat was not already included in the dictionary sourced impression tags32 of the extensible taxonomy of impression tags 30. Although the phrasewas not included in the extensible taxonomy of impression tags 30, theimpression tagging system 20 may still be determine that the phrase isstill an impression tag due to the hashtag convention. In one example,based on at least a determination that one of the identified impressiontags 50 of the plurality of extracted impression tag inputs 40 is notincluded in the extensible taxonomy of impression tags 30, theimpression tagging engine 20 executed by the server system 10 may beconfigured to extend the extensible taxonomy of impression tags 30 withthe one of the identified impression tags as a crowd-sourced impressiontag 34. In the illustrated example, the impression tagging engine 20 mayadd the phrase “relaxyourself” to the extensible taxonomy of impressiontags 30 as a crowd sourced impression tag 34. Thus, as other people usethe phrase “relaxyourself” in other visitor impressions 38, theimpression tagging engine 20 may identify that phrase as an impressiontag without relying on language conventions such as the hashtag.

As the crowd sourced impression tags 34 include uncommon tags outsidethe dictionary sourced impression tags 32, it is likely that crowdsourced impression tags 32 will tend to quickly trend upward in use andsubsequently quickly trend downward in use. In one example, theimpression tagging engine 20 is configured to calculate an extractionfrequency for each of the crowd sourced impression tags 34. That is, theimpression tagging engine 20 maintains a record of how often each of thecrowd sourced impression tags 34 are identified in visitor impressions38 over a period of time, such as every month. In this example, based onat least a determination that one of the crowd-sourced impression tags34 of the extensible taxonomy of impression tags 30 has an extractionfrequency that is lower than a threshold frequency value, the impressiontagging engine 20 executed by processor 14 is further configured toremove the one of the crowd-sourced impression tags from the extensibletaxonomy of impression tags 30. It will be appreciated that thethreshold frequency value may be set to any value suitable value. Forexample, the threshold frequency value may be set to 10 extractions permonth, such that if a specific crowd sourced impression tag is beingextracted and identified less than 10 times per month, then theimpression tagging engine 20 may be configured to remove that specificcrowd sourced impression tag from the extensible taxonomy of impressiontags 30.

Turning back to FIG. 3, as another example, the content sources 36include an online review service 36B. The impression tagging engine 20executed on the server system 10 may monitor the online review service36B for reviews related to one of the plurality of locations known tothe impression tagging engine 20. In the illustrated example, theimpression tagging engine 20 identifies two user reviews for thelocation coffee shop A, and retrieves the two reviews at visitorimpressions 38B. As discussed previously, the impression tagging engine20 may extract impression tags from the visitor impressions 38B based ongrammar and language conventions. In the illustrated example, theimpression tagging engine 20 extracts the identified impression tags 50of “nice”, “small”, “cozy”, and “quiet” from the first review, andextracts the identified impression tags 50 of “cozy” and “relax” fromthe second review. In this manner, the impression tagging engine 20 mayextract the impression tag input 40 including the identified impressiontags 50, and may determine the visited location context data 54 based onmetadata such as a timestamp attached to the reviews by the onlinereview service 36B.

Turning back to FIG. 1, the impression tagging engine 20 of the serversystem 10 is configured to monitor content sources 36 and extract aplurality of visitor impressions 38 including a plurality of impressiontag input 40. The impression tagging engine 20 is further configured to,for each impression tag input 40, aggregate that impression tag input 40into aggregated impression tag input data 64 in a location profile ofthe plurality of location profiles 22 that is associated with thevisited location 52 of that impression tag input 40. In the example ofFIG. 2, the impression tag input 40 had the visited location 52 coffeeshop A. Thus, the impression tagging engine 20 is configured toaggregate the impression tag input 40 into the location profile that isassociated with the coffee shop A location. In this manner, eachimpression tag input extracted from the various content sources 36generated by visitors of the coffee shop A location will be aggregatedtogether and stored in the location profile associated with the coffeeshop A location.

In one example, to aggregate the impression tag input 40 in a locationprofile, the impression tagging engine 20 is configured to store andorganize all of the impression tag input 40 for the location profile ina data structure suitable for data analysis, such as, for example, aspreadsheet type data structure. Accordingly, the impression taggingengine 20 may be configured to perform data analysis on the aggregatedimpression tag input data 64 to determine which identified impressiontags from the extensible taxonomy of impression tags 30 are mostfrequently used for a location at each of the plurality of timeintervals 28. In another example, the impression tagging engine 20 isconfigured to aggregate the impression tag inputs 40 by calculatingaggregate scores for each impression tag that has been associated with alocation at each of the plurality of time intervals 28. These aggregatescores may be updated by the impression tagging engine 20 when newimpression tag input 40 is received.

FIG. 4 illustrates an example of aggregate scores determined for thelocation profile for the coffee shop A location. In this example, fiveimpression tags have been extracted from visitor impressions 38 for thecoffee shop A. The impression tagging engine 20 has computed aggregatescores 66 for each impression tag 50 for each of the plurality of timeintervals 28. In the illustrated example, the plurality of timeintervals 28 includes a morning, afternoon, and an evening timeinterval. In this example, higher aggregate scores are visually depictedas a larger circle and lower aggregate scores are visually depicted as asmaller circle. As shown, visitors of the coffee shop A frequently enter“tasty” as an impression during every time interval, but only frequentlyenter “loud” as an impression during the morning when the coffee shop Ais generally busier. On the other hand, during the afternoon and eveningtime intervals, when the coffee shop A is less busy, visitors frequentlyenter the impressions “cozy”, “quiet”, and “relaxyourself”, and do notenter those impressions during the morning when the coffee shop A may becrowded, hectic, and loud. Thus, in this manner, the aggregatedimpression tag input data 64 for each of the plurality of locationprofiles 22 includes data indicating how frequently each impression tagis used by visitors to describe that location profile's associatedlocation during each time interval of that location profile's pluralityof time intervals 28. It will be appreciated that the impression taggingengine 20 may use any suitable methods and data structures to aggregatethe impression tag inputs 40.

As shown in FIG. 1, the impression tagging engine 20 is configured to,for each location profile, select one or more categorizing impressiontags 68 from the extensible taxonomy of impression tags 30 for each ofthe plurality of time intervals 28 based on at least the aggregatedimpression tag input data 64 of that location profile. In one example,the impression tagging engine 20 selects one or more impression tagshaving the highest aggregate score for each time interval as thecategorizing impression tags 68. In the example illustrated in FIG. 4,the impression tags “tasty” and “loud” have the highest aggregate scoreduring the morning time interval, and the impression tags “tasty”,“cozy”, “quiet”, and “relaxyourself”, have the highest aggregate scoreduring the afternoon and evening time intervals. Thus, in this example,the impression tagging engine 20 may be configured to select the “tasty”and “loud” impression tags as categorizing impression tags 68 for amorning time interval of the location profile associated with the coffeeshop A, and the “tasty”, “cozy”, “quiet”, and “relaxyourself” impressiontags as the categorizing impression tags 68 during the afternoon andevening time intervals. In this manner, the extensible taxonomy ofimpression tags 30 may be used to categorize each location of aplurality of locations based on visitor impressions of those locations.

In one example, the impression tagging engine 20 may be configured todetermine that a location profile of the plurality of location profiles22 includes a categorizing impression tag 68 that has been selected foreach of the plurality of time intervals 28 or that has been selected foran amount of time intervals greater than a threshold value. Based uponat least that determination, the impression tagging engine 20 may befurther configured to determine that the categorizing impression tag isa time independent categorizing impression tag that is always acategorizing impression tag for that location profile regardless of theplurality of time intervals 28, location conditions, and other factors.

As illustrated in FIG. 4, the impression tagging engine 20 may befurther configured to determine relations 70 between two or moreimpression tags of the extensible taxonomy of impression tags 30 basedon at least aggregated impression tag input data 64 of the plurality oflocation profiles 22. In one example, the impression tagging engine 20may be configured to perform trend analysis on the aggregated impressiontag input data 64 of each location profile to determine correlationsbetween different impression tags. In this example, the impressiontagging engine 20 may be configured to determine that two or moreimpression tags that have similar aggregate scores during the same timeinterval for a location are likely to be positively correlated. On theother hand, two or more impression tags that have different aggregatescores during the same time interval for a location are likely to benegatively correlated. These determined relations between impressiontags may be used by the impression tagging engine 20 to determinemeaning for the impression tags, particularly the crowd sourcedimpression tags 34 that may otherwise have ambiguous meaning to theimpression tagging engine 20.

In the example illustrated in FIG. 4, the impression tag “tasty” had ahigh aggregate score during every time interval while the otherimpression tags fluctuated. Thus, the “tasty” impression tag may bedetermined to have no clear relation to the other impression tags. Onthe other hand, the impression tags “cozy”, “quiet”, and“relaxyourself”, all had similar aggregate scores during each of theplurality of time intervals 28. Thus, in this example, the impressiontagging engine 20 may determine that the impression tags “cozy”,“quiet”, and ‘relaxyourself” have a positive relation. Thus, the crowdsourced impression tag “relaxyourself” may be determined to mean bothcozy and quiet. On the other hand, the impression tag “loud” hasdifferent aggregate scores for each time interval. Accordingly, theimpression tag “loud” may be determined to have a negative relation withthe impression tags “cozy”, “quiet”, and “relaxyourself”.

In one example, the impression tagging engine 20 may be furtherconfigured to determine hierarchical relations between impression tagsof the extensible taxonomy of impression tags 30 based on at leastaggregated impression tag input data 64 of the plurality of locationprofiles 22. In the example shown in FIG. 4, the impression tags of“cozy”, “quiet”, and “relaxyourself” were determined to have positiverelations based on the aggregated impression tag input data 64 of thelocation profile associated with the coffee shop A location. In onespecific example, the impression tagging engine 20 may further determinethat the “cozy” impression tag has a higher aggregate score for timeintervals of the plurality of time intervals compared to the “quiet” and“relaxyourself” impression tags. Based on that determination, theimpression tagging engine 20 may be configured to determine that the“cozy” impression tag has a higher hierarchical relation to the “quiet”and “relaxyourself” impression tags, such as, for example, aparent-child hierarchical relation. In this manner, the impressiontagging engine 20 may be configured to determine hierarchical relationsbetween sets of related impression tags in the extensible taxonomy ofimpression tags 30. In this example, the impression tagging engine 20may be further configured to select categorizing impression tags 68based on hierarchical relations between impression tags in theaggregated impression tag input data 64 of a location profile. Forexample, the impression tagging engine 20 may be configured to select animpression tag with the highest hierarchical relation as thecategorizing impression tag 68 when the aggregated impression tag inputdata 64 for a location profile includes multiple impression tags havinga positive relation, even though an impression tag having a lowerhierarchical relation has a higher aggregate score for a particular timeinterval.

Turning to FIG. 5, the impression tagging engine 20 may be furtherconfigured to select one or more categorizing impression tags 68 fromthe extensible taxonomy of impression tags 30 for each of the pluralityof location conditions based on at least the aggregated impression taginput data of that location profile 64. In the illustrated example, theplurality of location conditions includes weather conditions such asrainy, sunny, and snowing. Thus, as discussed previously, the impressiontagging engine 20 is configured to determine the visited locationcondition data 58, such as the local weather of that location, when thevisitor had visited that location. As shown in FIG. 5, aggregate scoresfor each impression tag 50 may be calculated for each of the pluralityof location conditions, such as rainy, sunny, and snowing. Thus, in oneexample, the impression tagging engine 20 may be configured to selectcategorizing impression tags 68 for each of the plurality of timeintervals and for each of the plurality of location conditions.

In one example, the plurality of location conditions further includesregional conditions. In this example, an example location profile of theplurality of location profiles 22 may include an associated collectionof locations. For example, the associated collection of locations may bea plurality of coffee shops A having different locations in the UnitedStates. In this example, the visited location condition may be a regionthat a particular branch of coffee shop A is located. That is, onecoffee shop A may have a visited location condition of a PacificNorthwest region, while a different coffee shop A may have a visitedlocation condition of a New England region. Thus, the impression taggingengine 20 may be configured to select categorizing impression tags 68for all coffee shops A associated with the example location profile, aswell as categorizing impression tags 68 for each coffee shop A in thePacific Northwest region and categorizing impression tags 68 for eachcoffee shop A in the New England region of the plurality of locationconditions. In one specific example, all coffee shops A may havecategorizing impression tags 68 of “cozy” and “quiet”. Additionally,each coffee shop A having the visited location condition of the PacificNorthwest region may have categorizing tags 68 of “escapetherain”, whileeach coffee shop A having the visited location condition of the NewEngland region may have categorizing tags 68 of “escapethecrowd”.

In another example, the plurality of location conditions furtherincludes a location type. For example, the location type may includerestaurants, coffee shops, beaches, buildings, stores, landmarks, etc.Thus, the visited location condition data 58 that is extracted from thevisitor impression 38 may further include a location type. For example,visitor impressions 38 associated with the location coffee shop A mayhave extracted visited location condition data 58 including a coffeeshop location type. In this example, the impression tagging engine 20may be configured to select categorizing impression tags 68 for thevisited location condition of the coffee shop location type for thelocation profile associated with coffee shop A. The impression tagineengine 20 may be further configured to aggregate the categorizingimpression tags 68 selected for the coffee shop location type formultiple location profiles. That is, a first location profile for thecoffee shop A location and a second location profile for a coffee shop Blocation may both include visited location conditions of the coffee shoplocation type. The impression tagging engine 20 may be configured toaggregate the categorizing impression tags 68 that were selected for thecoffee shop location type for both the first and second locationprofiles, and determine a trend for the aggregated categorizingimpression tags selected for the coffee shop location type. In onespecific example, the impression tagging engine 20 may determine a trendthat the impression tags of “cozy” and “quiet” tend to be selected ascategorizing impression tags 68 for most location profiles having thecoffee shop location type. Based on that determination, the impressiontagging engine 20 may be further configured to select the “cozy” and“quiet” impression tags for as categorizing impression tags 68 for alllocation profiles having the coffee shop location type.

It will be appreciated that the above examples of location conditionsare merely illustrative, and other types of location conditions notspecifically mentioned above may also be included in the plurality oflocation conditions and visited location condition data 58 for theplurality of location profiles 22.

Now turning back to FIG. 1, each of the plurality of location profiles22 includes categorizing impression tags 68 selected by the impressiontagging engine 20 for a plurality of time intervals 28 and a pluralityof location conditions. The categorizing impression tags 68 may be usedby the impression tagging engine 20 to select suitable location profilesin response to search requests from user of client computing devices 12.

As shown, the server system 10 may receive, from a client computingdevice 12, a search request 72 having a requested impression tag 74 andsearch request context data including a target time interval 76 of theplurality of time intervals. The requested impression tag 74 may includean impression tag from the extensible taxonomy of impression tags 30,and the target time interval 76 may be a time interval for when thesearch request 72 was generated, or a specific time interval beingrequested by the user of the client computing device such as for areservation (e.g. cozy coffee shop at 7:00 PM).

After receiving the search request 72, the impression tagging engine 20is configured to select a target location profile 78 from the pluralityof location profiles 22 that has one or more categorizing impressiontags 68 selected for the target time interval 76 of the plurality oftime intervals 28 that correspond to the requested impression tag 74.For example, if the search request 72 was “cozy coffee shop at 7:00 PM”,the impression tagging engine 20 may be configured to extract “cozy” asthe requested impression tag 74 and an evening time interval of theplurality of time intervals 22 as the target time interval 76. Next, theimpression tagging engine 20 may search through the plurality oflocation profiles for location profiles that have one or morecategorizing impression tags 68 corresponding to “cozy” during theevening time interval. Thus, in the example illustrated in FIG. 4, theimpression tagging engine 20 may determine that the location profile forthe coffee shop A includes a “cozy” categorization impression tag 68during the evening time interval. Accordingly, the impression taggingengine 20 may select the location profile for the coffee shop A as thetarget location profile 78 as being a suitable response to the searchrequest 72.

After selecting the target location profile 78, the server system 10 maytransmit, to the client computing device 12, a search result 80including the target location profile 78. The client application 42executed on the client computing device 12 may be configured to presentthe search result 80 to the user via the GUI 46 shown on the display 48.

In one example, the impression tagging engine 20 is further configuredto select a target location profile 78 from the plurality of locationprofiles 22 that has one or more categorizing impression tags 68selected for a target location condition of the target locationassociated with the target location profile at the target time interval76 that correspond to the requested impression tag 74. In examples thatinclude weather conditions for the plurality of location conditions, theimpression tagging engine 20 may be configured to determine the targetlocation condition of the target location based on local weather data atthe target time interval 76. Thus, the impression tagging engine 20 maybe configured to select a target location profile that includescategorizing impression tags 68 that correspond to the requestedimpression tag 74 during both the target time interval and the targetlocation condition.

FIG. 6 illustrates the GUI 46 of the client application 42 presented onthe client computing device after a search request 72 was entered by theuser. In the illustrated example, the search request 72 was for “cozyplaces”. In one example, the client application 42 may be configured toassociate a target time interval 76 to the search request 72. In thisexample, the target time interval 76 is a current time when the searchrequest 72 was entered by the user. In another example, the target timeinterval may be a time interval entered by the user as part of thesearch request (e.g. cozy places at 6:00 PM).

After receiving the search request, the impression tagging engine 20 isconfigured to extract the requested impression tag 74 from the searchrequest 72. In the example of FIG. 6, the requested impression tag 74 is“cozy”, and the target time interval 76 is 3:00 PM. Thus, the impressiontagging engine 20 searches through the plurality of location profiles toselect a target location profile that has a categorization impressiontag corresponding to “cozy” during the afternoon time interval. Thetarget location profile is then transmitted to the client computingdevice 12 with search results 80. After receiving the search result 80,the client application 42 presents the target location profile in thesearch result 80 via the GUI 46. As shown in FIG. 6, the target locationprofile included the location profile for the coffee shop A location,which has a “cozy” categorization tag during the afternoon timeinterval.

As illustrated in FIG. 6, the search result 80 may include a pluralityof target location profiles. In the example of FIG. 6, location profilesfor both the coffee shop A location and a hotel location included the“cozy” categorization tag during the afternoon, and were thus bothtransmitted to the client computing device 12 in the search result 80.

In one example, the impression tagging engine 20 may be furtherconfigured to select a target location profile 78 from the plurality oflocation profiles 22 further based on determined relations 70 betweenthe one or more categorizing impression tags 68 of the target locationprofile and the requested impression tag 74. As discussed in the exampleof FIG. 4, the impression tagging engine 20 determined that there is apositive relation between the “cozy” impression tag and the “quiet”impression tag. Thus, in this example, the impression tagging engine 20may also search for location profiles that include one or morecategorizing impression tags 68 that have a positive relation with therequested impression tag 74. Accordingly, the impression tagging engine20 searched for location profiles that have “cozy” and/or “quiet”categorization tags, and transmitted those location profiles to theclient computing device 12. As shown in FIG. 6, the location profile forthe library location was also transmitted as a related search result.

FIG. 7 shows an example computer-implemented method 700 according to anembodiment of the present disclosure. At step 702, the method 700 mayinclude, storing a plurality of location profiles respectivelyassociated with a plurality of locations, each location profile havingcalendar data including a plurality of time intervals. The plurality oflocation profiles may be stored in non-volatile storage of a serversystem. The plurality of locations are physical locations in the worldand may include buildings, businesses, routes, landmarks, geolocations,collections of locations, and other methods of demarcating locations. Inone example, the calendar data for each of the plurality of locationprofiles includes a plurality of time intervals selected from the groupconsisting of day, time of day, month, year, and season. In anotherexample, the calendar data for each of the plurality of locationprofiles includes event time intervals of the plurality of timeintervals for events that occur at the associated location. For example,a location that is a store may include a plurality of time intervals forthe hours that the store is open. As another example, a public squarelocation may include a plurality of time intervals for the duration ofevents that will occur at the public square.

Advancing from step 702 to step 704, the method 700 may include managingan extensible taxonomy of impression tags for categorizing the pluralityof locations. The extensible taxonomy of impression tags may includewords, emoticons, and user uploaded image forms of impression tags. Inone example, the extensible taxonomy of impression tags may includedictionary sourced impression tags.

Proceeding from step 704 to step 706, the method 700 may includemonitoring content sources for visitor impressions of the plurality oflocations. The content sources may include client computing devices,online social networking services, online review services, and othercontent sources that may provide user impressions of locations in theworld.

Advancing from step 706 to step 708, the method 700 may includeextracting a plurality of impression tag inputs from the visitorimpressions, each impression tag input including an identifiedimpression tag, a visited location of the plurality of locations, andvisited location context data including a visited time interval of theplurality of time intervals. The identified impression tags may beextracted based on known language conventions and grammar.

Based on at least determining that one of the identified impression tagsof the plurality of extracted impression tag inputs is not included inthe extensible taxonomy of impression tags, the method 700 may proceedfrom step 708 to step 710 and may include extending the extensibletaxonomy of impression tags with the one of the identified impressiontags as a crowd-sourced impression tag. The extensible taxonomy ofimpression tags may include both the dictionary sourced impression tagsand the crowd sourced impression tags.

Advancing from step 710 to step 712, the method 700 may include, foreach impression tag input, aggregating that impression tag input intoaggregated impression tag input data in a location profile of theplurality of location profiles that is associated with the visitedlocation of that impression tag input. In one example, aggregating theimpression tag input may include organizing all of the impression taginput for a location profile in a data structure suitable for dataanalysis, such as, for example, a spreadsheet type data structure. Inanother example, aggregating the impression tag inputs may includecalculating aggregate scores for each impression tag that has beenassociated with a location at each of the plurality of time intervals.These aggregate scores may be updated when new impression tag input isreceived.

Proceeding from step 712 to step 714, the method 700 may includedetermining relations between two or more impression tags of theextensible taxonomy of impression tags based on at least aggregatedimpression tag input data of the plurality of location profiles. In oneexample, step 714 may further include performing trend analysis on theaggregated impression tag input data of each location profile todetermine correlations between different impression tags. Step 714 mayfurther include determining that two or more impression tags that havesimilar aggregate scores during the same time interval for a locationare likely to be positively correlated. On the other hand, two or moreimpression tags that have different aggregate scores during the sametime interval for a location are likely to be negatively correlated.

Advancing from step 714 to step 716, the method 700 may include, foreach location profile, selecting one or more categorizing impressiontags from the extensible taxonomy of impression tags for each of theplurality of time intervals based on at least the aggregated impressiontag input data of that location profile. In one example, step 716includes selecting one or more impression tags having the highestaggregate score for each time interval as the categorizing impressiontags.

Proceeding from step 716 to step 718, the method 700 may includereceiving a search request having a requested impression tag and searchrequest context data including a target time interval of the pluralityof time intervals. The requested impression tag may be included in theextensible taxonomy of impression tags.

Advancing from step 718 to step 720, the method 700 may includeselecting a target location profile from the plurality of locationprofiles that has one or more categorizing impression tags selected forthe target time interval of the plurality of time intervals thatcorrespond to the requested impression tag. In one example, step 720 mayinclude selecting a target location profile that includes one or morecategorization impression tags that are the same at the requestimpression tag during the target time interval. In another example, step720 further includes selecting a target location profile from theplurality of location profiles further based on determined relationsbetween the one or more categorizing impression tags of the targetlocation profile and the requested impression tag.

Proceeding from step 720 to step 722, the method 700 may includetransmitting a search result including the target location profile. Inone example, the search result may include a plurality of targetlocation profiles.

Advancing from step 722 to step 724, the method 700 may include, basedon at least determining that one of the crowd-sourced impression tags ofthe extensible taxonomy of impression tags has an extraction frequencythat is lower than a threshold frequency value, removing the one of thecrowd-sourced impression tags from the extensible taxonomy of impressiontags. The threshold frequency value may be set to any value suitablevalue. For example, the threshold frequency value may be set to 10extractions per month, such that if a specific crowd sourced impressiontag is being extracted and identified less than 10 times per month, thenstep 724 may include removing that specific crowd sourced impression tagfrom the extensible taxonomy of impression tags.

In some embodiments, the methods and processes described herein may betied to a computing system of one or more computing devices. Inparticular, such methods and processes may be implemented as acomputer-application program or service, an application-programminginterface (API), a library, and/or other computer-program product.

FIG. 8 schematically shows a non-limiting embodiment of a computingsystem 900 that can enact one or more of the methods and processesdescribed above. Computing system 900 is shown in simplified form.Computing system 900 may embody the server system 10 and clientcomputing devices 12 described above. Computing system 900 may take theform of one or more personal computers, server computers, tabletcomputers, home-entertainment computers, network computing devices,gaming devices, mobile computing devices, mobile communication devices(e.g., smart phone), and/or other computing devices, and wearablecomputing devices such as smart wristwatches and head mounted augmentedreality devices.

Computing system 900 includes a logic processor 902 volatile memory 904,and a non-volatile storage device 906. Computing system 900 mayoptionally include a display subsystem 908, input subsystem 910,communication subsystem 912, and/or other components not shown in FIG.8.

Logic processor 902 includes one or more physical devices configured toexecute instructions. For example, the logic processor may be configuredto execute instructions that are part of one or more applications,programs, routines, libraries, objects, components, data structures, orother logical constructs. Such instructions may be implemented toperform a task, implement a data type, transform the state of one ormore components, achieve a technical effect, or otherwise arrive at adesired result.

The logic processor may include one or more physical processors(hardware) configured to execute software instructions. Additionally oralternatively, the logic processor may include one or more hardwarelogic circuits or firmware devices configured to executehardware-implemented logic or firmware instructions. Processors of thelogic processor 902 may be single-core or multi-core, and theinstructions executed thereon may be configured for sequential,parallel, and/or distributed processing. Individual components of thelogic processor optionally may be distributed among two or more separatedevices, which may be remotely located and/or configured for coordinatedprocessing. Aspects of the logic processor may be virtualized andexecuted by remotely accessible, networked computing devices configuredin a cloud-computing configuration. In such a case, these virtualizedaspects are run on different physical logic processors of variousdifferent machines, it will be understood.

Non-volatile storage device 906 includes one or more physical devicesconfigured to hold instructions executable by the logic processors toimplement the methods and processes described herein. When such methodsand processes are implemented, the state of non-volatile storage device904 may be transformed—e.g., to hold different data.

Non-volatile storage device 906 may include physical devices that areremovable and/or built-in. Non-volatile storage device 94 may includeoptical memory (e.g., CD, DVD, HD-DVD, Blu-Ray Disc, etc.),semiconductor memory (e.g., ROM, EPROM, EEPROM, FLASH memory, etc.),and/or magnetic memory (e.g., hard-disk drive, floppy-disk drive, tapedrive, MRAM, etc.), or other mass storage device technology.Non-volatile storage device 906 may include nonvolatile, dynamic,static, read/write, read-only, sequential-access, location-addressable,file-addressable, and/or content-addressable devices. It will beappreciated that non-volatile storage device 906 is configured to holdinstructions even when power is cut to the non-volatile storage device906.

Volatile memory 904 may include physical devices that include randomaccess memory. Volatile memory 904 is typically utilized by logicprocessor 902 to temporarily store information during processing ofsoftware instructions. It will be appreciated that volatile memory 904typically does not continue to store instructions when power is cut tothe volatile memory 904.

Aspects of logic processor 902, volatile memory 904, and non-volatilestorage device 906 may be integrated together into one or morehardware-logic components. Such hardware-logic components may includefield-programmable gate arrays (FPGAs), program- andapplication-specific integrated circuits (PASIC/ASICs), program- andapplication-specific standard products (PSSP/ASSPs), system-on-a-chip(SOC), and complex programmable logic devices (CPLDs), for example.

The terms “module,” “program,” and “engine” may be used to describe anaspect of computing system 900 typically implemented in software by aprocessor to perform a particular function using portions of volatilememory, which function involves transformative processing that speciallyconfigures the processor to perform the function. Thus, a module,program, or engine may be instantiated via logic processor 902 executinginstructions held by non-volatile storage device 906, using portions ofvolatile memory 904. It will be understood that different modules,programs, and/or engines may be instantiated from the same application,service, code block, object, library, routine, API, function, etc.Likewise, the same module, program, and/or engine may be instantiated bydifferent applications, services, code blocks, objects, routines, APIs,functions, etc. The terms “module,” “program,” and “engine” mayencompass individual or groups of executable files, data files,libraries, drivers, scripts, database records, etc.

When included, display subsystem 908 may be used to present a visualrepresentation of data held by non-volatile storage device 906. Thevisual representation may take the form of a graphical user interface(GUI). As the herein described methods and processes change the dataheld by the non-volatile storage device, and thus transform the state ofthe non-volatile storage device, the state of display subsystem 908 maylikewise be transformed to visually represent changes in the underlyingdata. Display subsystem 908 may include one or more display devicesutilizing virtually any type of technology. Such display devices may becombined with logic processor 902, volatile memory 904, and/ornon-volatile storage device 906 in a shared enclosure, or such displaydevices may be peripheral display devices.

When included, input subsystem 910 may comprise or interface with one ormore user-input devices such as a keyboard, mouse, touch screen, or gamecontroller. In some embodiments, the input subsystem may comprise orinterface with selected natural user input (NUI) componentry. Suchcomponentry may be integrated or peripheral, and the transduction and/orprocessing of input actions may be handled on- or off-board. Example NUIcomponentry may include a microphone for speech and/or voicerecognition; an infrared, color, stereoscopic, and/or depth camera formachine vision and/or gesture recognition; a head tracker, eye tracker,accelerometer, and/or gyroscope for motion detection and/or intentrecognition; as well as electric-field sensing componentry for assessingbrain activity; and/or any other suitable sensor.

When included, communication subsystem 912 may be configured tocommunicatively couple various computing devices described herein witheach other, and with other devices. Communication subsystem 912 mayinclude wired and/or wireless communication devices compatible with oneor more different communication protocols. As non-limiting examples, thecommunication subsystem may be configured for communication via awireless telephone network, or a wired or wireless local- or wide-areanetwork, such as a HDMI over Wi-Fi connection. In some embodiments, thecommunication subsystem may allow computing system 900 to send and/orreceive messages to and/or from other devices via a network such as theInternet.

The following paragraphs provide additional support for the claims ofthe subject application. One aspect provides a server system comprisinga processor configured to store a plurality of location profilesrespectively associated with a plurality of locations, each locationprofile having calendar data including a plurality of time intervals,manage an extensible taxonomy of impression tags for categorizing theplurality of locations, monitor content sources for visitor impressionsof the plurality of locations and extract a plurality of impression taginputs from the visitor impressions, each impression tag input includingan identified impression tag, a visited location of the plurality oflocations, and visited location context data including a visited timeinterval of the plurality of time intervals, based on at least adetermination that one of the identified impression tags of theplurality of extracted impression tag inputs is not included in theextensible taxonomy of impression tags, extend the extensible taxonomyof impression tags with the one of the identified impression tags as acrowd-sourced impression tag, for each impression tag input, aggregatethat impression tag input into aggregated impression tag input data in alocation profile of the plurality of location profiles that isassociated with the visited location of that impression tag input, andfor each location profile, select one or more categorizing impressiontags from the extensible taxonomy of impression tags for each of theplurality of time intervals based on at least the aggregated impressiontag input data of that location profile. In this aspect, additionally oralternatively, the processor may be further configured to receive, froma client computing device, a search request having a requestedimpression tag and search request context data including a target timeinterval of the plurality of time intervals, select a target locationprofile from the plurality of location profiles that has one or morecategorizing impression tags selected for the target time interval ofthe plurality of time intervals that correspond to the requestedimpression tag, and transmit, to the client computing device, a searchresult including the target location profile. In this aspect,additionally or alternatively, the plurality of locations may beselected from the group consisting of buildings, businesses, routes,landmarks, geolocations, and collections of locations. In this aspect,additionally or alternatively, the calendar data for each of theplurality of location profiles may include a plurality of time intervalsselected from the group consisting of day, time of day, month, year, andseason. In this aspect, additionally or alternatively, the calendar datafor each of the plurality of location profiles includes event timeintervals of the plurality of time intervals for events that occur atthe associated location. In this aspect, additionally or alternatively,the extensible taxonomy of impression tags may include words, emoticons,and user uploaded images. In this aspect, additionally or alternatively,based on at least a determination that one of the crowd-sourcedimpression tags of the extensible taxonomy of impression tags has anextraction frequency that is lower than a threshold frequency value, theprocessor may be further configured to remove the one of thecrowd-sourced impression tags from the extensible taxonomy of impressiontags. In this aspect, additionally or alternatively, the processor maybe further configured to determine relations between two or moreimpression tags of the extensible taxonomy of impression tags based onat least aggregated impression tag input data of the plurality oflocation profiles, and select a target location profile from theplurality of location profiles further based on determined relationsbetween the one or more categorizing impression tags of the targetlocation profile and the requested impression tag. In this aspect,additionally or alternatively, the processor may be further configuredto send the extensible taxonomy of impression tags to a client computingdevice, and receive an impression tag input from the client computingdevice including a user selection of one of the impression tags from theextensible taxonomy of impression tags as the identified impression tag.In this aspect, additionally or alternatively, visited location contextdata of each impression tag input may further include a visited locationcondition of a plurality of location conditions, and wherein theprocessor may be further configured to select one or more categorizingimpression tags from the extensible taxonomy of impression tags for eachof the plurality of location conditions based on at least the aggregatedimpression tag input data of that location profile, and select a targetlocation profile from the plurality of location profiles that has one ormore categorizing impression tags selected for a target locationcondition of the target location associated with the target locationprofile at the target time interval that correspond to the requestedimpression tag. In this aspect, additionally or alternatively, theplurality of location conditions may include weather conditions.

Another aspect provides a method comprising storing a plurality oflocation profiles respectively associated with a plurality of locations,each location profile having calendar data including a plurality of timeintervals, managing an extensible taxonomy of impression tags forcategorizing the plurality of locations, monitoring content sources forvisitor impressions of the plurality of locations and extracting aplurality of impression tag inputs from the visitor impressions, eachimpression tag input including an identified impression tag, a visitedlocation of the plurality of locations, and visited location contextdata including a visited time interval of the plurality of timeintervals, based on at least determining that one of the identifiedimpression tags of the plurality of extracted impression tag inputs isnot included in the extensible taxonomy of impression tags, extendingthe extensible taxonomy of impression tags with the one of theidentified impression tags as a crowd-sourced impression tag, for eachimpression tag input, aggregating that impression tag input intoaggregated impression tag input data in a location profile of theplurality of location profiles that is associated with the visitedlocation of that impression tag input, and for each location profile,selecting one or more categorizing impression tags from the extensibletaxonomy of impression tags for each of the plurality of time intervalsbased on at least the aggregated impression tag input data of thatlocation profile. In this aspect, additionally or alternatively, themethod may further comprise receiving a search request having arequested impression tag and search request context data including atarget time interval of the plurality of time intervals, selecting atarget location profile from the plurality of location profiles that hasone or more categorizing impression tags selected for the target timeinterval of the plurality of time intervals that correspond to therequested impression tag, and transmitting a search result including thetarget location profile. In this aspect, additionally or alternatively,the plurality of locations may be selected from the group consisting ofbuildings, businesses, routes, landmarks, geolocations, and collectionsof locations. In this aspect, additionally or alternatively, thecalendar data for each of the plurality of location profiles may includea plurality of time intervals selected from the group consisting of day,time of day, month, year, and season. In this aspect, additionally oralternatively, the calendar data for each of the plurality of locationprofiles may include event time intervals of the plurality of timeintervals for events that occur at the associated location. In thisaspect, additionally or alternatively, the extensible taxonomy ofimpression tags may include words, emoticons, and user uploaded images.In this aspect, additionally or alternatively, the method may furthercomprise based on at least determining that one of the crowd-sourcedimpression tags of the extensible taxonomy of impression tags has anextraction frequency that is lower than a threshold frequency value,removing the one of the crowd-sourced impression tags from theextensible taxonomy of impression tags. In this aspect, additionally oralternatively, the method may further comprise determining relationsbetween two or more impression tags of the extensible taxonomy ofimpression tags based on at least aggregated impression tag input dataof the plurality of location profiles, and selecting a target locationprofile from the plurality of location profiles further based ondetermined relations between the one or more categorizing impressiontags of the target location profile and the requested impression tag.

Another aspect provides a server system comprising a processorconfigured to store a plurality of location profiles respectivelyassociated with a plurality of locations, manage an extensible taxonomyof impression tags for categorizing the plurality of locations, monitorcontent sources for visitor impressions of the plurality of locationsand extract a plurality of impression tag inputs from the visitorimpressions, each impression tag input including an identifiedimpression tag and a visited location of the plurality of locations,based on at least a determination that one of the identified impressiontags of the plurality of extracted impression tag inputs is not includedin the extensible taxonomy of impression tags, extend the extensibletaxonomy of impression tags with the one of the identified impressiontags as a crowd-sourced impression tag, for each impression tag input,aggregate that impression tag input into aggregated impression tag inputdata in a location profile of the plurality of location profiles that isassociated with the visited location of that impression tag input, andfor each location profile, select one or more categorizing impressiontags from the extensible taxonomy of impression tags based on at leastthe aggregated impression tag input data of that location profile.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A server system comprising a processor configured to: store aplurality of location profiles respectively associated with a pluralityof locations, each location profile having calendar data including aplurality of time intervals; manage an extensible taxonomy of impressiontags for categorizing the plurality of locations; monitor contentsources for visitor impressions of the plurality of locations andextract a plurality of impression tag inputs from the visitorimpressions, each impression tag input including an identifiedimpression tag, a visited location of the plurality of locations, andvisited location context data including a visited time interval of theplurality of time intervals; based on at least a determination that oneof the identified impression tags of the plurality of extractedimpression tag inputs is not included in the extensible taxonomy ofimpression tags, extend the extensible taxonomy of impression tags withthe one of the identified impression tags as a crowd-sourced impressiontag; for each impression tag input, aggregate that impression tag inputinto aggregated impression tag input data in a location profile of theplurality of location profiles that is associated with the visitedlocation of that impression tag input; and for each location profile,select one or more categorizing impression tags from the extensibletaxonomy of impression tags for each of the plurality of time intervalsbased on at least the aggregated impression tag input data of thatlocation profile.
 2. The server system of claim 1, wherein the processoris further configured to: receive, from a client computing device, asearch request having a requested impression tag and search requestcontext data including a target time interval of the plurality of timeintervals; select a target location profile from the plurality oflocation profiles that has one or more categorizing impression tagsselected for the target time interval of the plurality of time intervalsthat correspond to the requested impression tag; and transmit, to theclient computing device, a search result including the target locationprofile.
 3. The server system of claim 2, wherein the plurality oflocations are selected from the group consisting of buildings,businesses, routes, landmarks, geolocations, and collections oflocations.
 4. The server system of claim 2, wherein the calendar datafor each of the plurality of location profiles includes a plurality oftime intervals selected from the group consisting of day, time of day,month, year, and season.
 5. The server system of claim 2, wherein thecalendar data for each of the plurality of location profiles includesevent time intervals of the plurality of time intervals for events thatoccur at the associated location.
 6. The server system of claim 2,wherein the extensible taxonomy of impression tags includes words,emoticons, and user uploaded images.
 7. The server system of claim 2,wherein based on at least a determination that one of the crowd-sourcedimpression tags of the extensible taxonomy of impression tags has anextraction frequency that is lower than a threshold frequency value, theprocessor is further configured to remove the one of the crowd-sourcedimpression tags from the extensible taxonomy of impression tags.
 8. Theserver system of claim 2, wherein the processor is further configuredto: determine relations between two or more impression tags of theextensible taxonomy of impression tags based on at least aggregatedimpression tag input data of the plurality of location profiles; andselect a target location profile from the plurality of location profilesfurther based on determined relations between the one or morecategorizing impression tags of the target location profile and therequested impression tag.
 9. The server system of claim 2, wherein theprocessor is further configured to: send the extensible taxonomy ofimpression tags to a client computing device; and receive an impressiontag input from the client computing device including a user selection ofone of the impression tags from the extensible taxonomy of impressiontags as the identified impression tag.
 10. The server system of claim 2,wherein visited location context data of each impression tag inputfurther includes a visited location condition of a plurality of locationconditions, and wherein the processor is further configured to: selectone or more categorizing impression tags from the extensible taxonomy ofimpression tags for each of the plurality of location conditions basedon at least the aggregated impression tag input data of that locationprofile; and select a target location profile from the plurality oflocation profiles that has one or more categorizing impression tagsselected for a target location condition of the target locationassociated with the target location profile at the target time intervalthat correspond to the requested impression tag.
 11. The server systemof claim 10, wherein the plurality of location conditions includesweather conditions.
 12. A method comprising: storing a plurality oflocation profiles respectively associated with a plurality of locations,each location profile having calendar data including a plurality of timeintervals; managing an extensible taxonomy of impression tags forcategorizing the plurality of locations; monitoring content sources forvisitor impressions of the plurality of locations and extracting aplurality of impression tag inputs from the visitor impressions, eachimpression tag input including an identified impression tag, a visitedlocation of the plurality of locations, and visited location contextdata including a visited time interval of the plurality of timeintervals; based on at least determining that one of the identifiedimpression tags of the plurality of extracted impression tag inputs isnot included in the extensible taxonomy of impression tags, extendingthe extensible taxonomy of impression tags with the one of theidentified impression tags as a crowd-sourced impression tag; for eachimpression tag input, aggregating that impression tag input intoaggregated impression tag input data in a location profile of theplurality of location profiles that is associated with the visitedlocation of that impression tag input; and for each location profile,selecting one or more categorizing impression tags from the extensibletaxonomy of impression tags for each of the plurality of time intervalsbased on at least the aggregated impression tag input data of thatlocation profile.
 13. The method of claim 12, further comprising:receiving a search request having a requested impression tag and searchrequest context data including a target time interval of the pluralityof time intervals; selecting a target location profile from theplurality of location profiles that has one or more categorizingimpression tags selected for the target time interval of the pluralityof time intervals that correspond to the requested impression tag; andtransmitting a search result including the target location profile. 14.The method of claim 13, wherein the plurality of locations are selectedfrom the group consisting of buildings, businesses, routes, landmarks,geolocations, and collections of locations.
 15. The method of claim 13,wherein the calendar data for each of the plurality of location profilesincludes a plurality of time intervals selected from the groupconsisting of day, time of day, month, year, and season.
 16. The methodof claim 13, wherein the calendar data for each of the plurality oflocation profiles includes event time intervals of the plurality of timeintervals for events that occur at the associated location.
 17. Themethod of claim 13, wherein the extensible taxonomy of impression tagsincludes words, emoticons, and user uploaded images.
 18. The method ofclaim 13, wherein based on at least determining that one of thecrowd-sourced impression tags of the extensible taxonomy of impressiontags has an extraction frequency that is lower than a thresholdfrequency value, removing the one of the crowd-sourced impression tagsfrom the extensible taxonomy of impression tags.
 19. The method of claim13, further comprising: determining relations between two or moreimpression tags of the extensible taxonomy of impression tags based onat least aggregated impression tag input data of the plurality oflocation profiles; and selecting a target location profile from theplurality of location profiles further based on determined relationsbetween the one or more categorizing impression tags of the targetlocation profile and the requested impression tag.
 20. A server systemcomprising a processor configured to: store a plurality of locationprofiles respectively associated with a plurality of locations; managean extensible taxonomy of impression tags for categorizing the pluralityof locations; monitor content sources for visitor impressions of theplurality of locations and extract a plurality of impression tag inputsfrom the visitor impressions, each impression tag input including anidentified impression tag and a visited location of the plurality oflocations; based on at least a determination that one of the identifiedimpression tags of the plurality of extracted impression tag inputs isnot included in the extensible taxonomy of impression tags, extend theextensible taxonomy of impression tags with the one of the identifiedimpression tags as a crowd-sourced impression tag; for each impressiontag input, aggregate that impression tag input into aggregatedimpression tag input data in a location profile of the plurality oflocation profiles that is associated with the visited location of thatimpression tag input; and for each location profile, select one or morecategorizing impression tags from the extensible taxonomy of impressiontags based on at least the aggregated impression tag input data of thatlocation profile.